/*
 * 版权所有 (c) 2022-2099 TBIT。保留所有权利。
 */

/*
 * 版权所有 (c) 2022-2099 TBIT。保留所有权利。
 */

package com.tbit.main.pojo;

import com.tbit.main.pojo.VO.RideLogVo;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;

import javax.validation.constraints.NotNull;

/**
 * @author: ShiGuang
 * @create: 2021-12-13 11:12
 * @description: 费用申诉实体类，对应数据库表appeal
 */
@Data
public class FeeAppeal {

    private static final long serialVersionUID = 1L;

    /**
     * 申诉id
     */
    private Integer appealId;
    /**
     * 平台账户id
     */
    private Integer accountId;
    /**
     * 用户id
     */
    private Integer userId;
    /**
     * 骑行订单号
     */
    private String orderNO;
    /**
     * 申诉类型
     */
    private String type;
    /**
     * 图片url地址
     */
    private String url;
    /**
     * 设备编号
     */
    private String machineNO;
    /**
     * 订单金额
     */
    private Double money;
    /**
     * 备注（客户申诉备注）
     */
    private String remark;
    /**
     * 申诉时间
     */
    private String addTime;
    /**
     * 处理时间
     */
    private String handleTime;
    /**
     * 客服处理回复
     */
    private String result;
    /**
     * 处理状态：null（为空），该笔骑行订单没有申诉；0:处理中；1:申诉驳回；2:申诉通过
     */
    @NotNull(message = "处理结果不能为空")
    private Integer state;
    /**
     * 补偿方案id,0:退款到用户钱包，1：退款虚拟金额，2：其他方案补偿 3:新增原路退还 4:礼品卡
     */
    private Integer compensationId;
    /**
     * 是否发送短信，0不发送，1发送
     */
    @NotNull(message = "消息推送开关不为空")
    private Integer isSend;
    /**
     * 开始时间
     */
    private String startTime;
    /**
     * 结束时间
     */
    private String endTime;
    /**
     * 用户号码
     */
    @NotNull
    private String phone;
    /**
     * 密钥
     */
    private String operaPsw;

    /**
     * 处理进度
     */
    private String handlePlan;

    /**
     * 处理结果
     */
    private String handleResult;

    /**
     * 费用明细列
     */
    private String rideRemark;
    /**
     * 罚款费用(单位：分)
     */
    private Long fineMoney;
    /**
     * 退款金额(单位：分)
     */
    private Long refundMoney;
    /**
     * 礼品卡金额(单位：分)
     */
    private Long giftMoney;

    private Integer machineId;

    private String userCode;
    /**
     * 当前订单已退金额
     */
    private Double refundedMoney;
    /**
     * 退款状态（0：退款中）
     */
    private Integer refundStatus;
    private RideLogVo rideLog;
    private String name;


    /**
     * 去除特殊字符串
     * 特殊字符串会导致前端页面报错
     */
    public void removeSpecialCharacters() {
        if (StringUtils.isBlank(this.remark)) {
            return;
        }
        this.remark = this.remark.replace("^", "").replace("$", "").replace("\"", "").replace("'", "");
    }

}